package com.example.leetcode.problem.isuniquelcci;

import org.springframework.util.Assert;

public class CheckPermutationLcci {

    /**
     * 不使用排序，用数组下标，双百
     * @param s1
     * @param s2
     * @return
     */
    public boolean CheckPermutation(String s1, String s2) {
        int l1=s1.length(),l2=s2.length();
        if(l1!=l2)
            return false;
        int []index=new int[128];
        for(int i=0;i<l1;i++){
            index[s1.charAt(i)]++;
            index[s2.charAt(i)]--;
        }
        for(int i=0;i<128;i++){
            if(index[i]!=0)
                return false;
        }
        return true;
    }

    /**
     * 面试题 01.02. 判定是否互为字符重排
     * 给定两个字符串 s1 和 s2，请编写一个程序，确定其中一个字符串的字符重新排列后，能否变成另一个字符串。
     *
     * 示例 1：
     *
     * 输入: s1 = "abc", s2 = "bca"
     * 输出: true
     * 示例 2：
     *
     * 输入: s1 = "abc", s2 = "bad"
     * 输出: false
     * 说明：
     *
     * 0 <= len(s1) <= 100
     * 0 <= len(s2) <= 100
     * @param args
     */
    public static void main(String[] args) {
        CheckPermutationLcci test = new CheckPermutationLcci();
        Assert.isTrue(test.CheckPermutation("abc","bca"));
        Assert.isTrue(!test.CheckPermutation( "abc","bad"));
    }

//    作者：zhang-wei-42
//    链接：https://leetcode-cn.com/problems/check-permutation-lcci/solution/java-bu-shi-yong-pai-xu-yong-shu-zu-xia-biao-shuan/
//    来源：力扣（LeetCode）
//    著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
}
